package com.zzyl.service;

import com.zzyl.base.PageResponse;
import com.zzyl.dto.VisitDto;
import com.zzyl.vo.VisitVo;

import java.time.LocalDateTime;
import java.util.List;

public interface VisitService {

    /**
     * 更新来访信息
     * @param id 来访信息id
     * @param dto 来访信息
     */
    void update(Long id, VisitDto dto);

    /**
     * 取消来访
     */
    void cancelVisit(Long id);

    /**
     * 根据id删除来访信息
     * @param id 来访信息id
     */
    void deleteById(Long id);

    /**
     * 根据id查找来访信息
     * @param id 来访信息id
     * @return 来访信息
     */
    VisitVo findById(Long id);

    /**
     * 查找所有来访信息
     * @return 所有来访信息
     * @param mobile
     * @param time
     */
    List<VisitVo> findAll(String mobile, LocalDateTime time);

    /**
     * 新增来访信息
     * @param visitDto 来访信息
     */
    void add(VisitDto visitDto);

    /**
     * 分页查询来访信息
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @param name 来访人姓名
     * @param phone 手机号
     * @param status 状态
     * @param type 类型
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 分页响应
     */
    PageResponse<VisitVo> findByPage(int pageNum, int pageSize, String name, String phone, Integer status, Integer type, LocalDateTime startTime, LocalDateTime endTime);

}
